1. Field of the Invention
The invention relates generally to storage systems and more specifically relates to methods and structures operable within a storage system to detect patterns of block level usage to enable tuning of the operation of the storage system for identified applications and systems.
2. Discussion of Related Art
Patterns of use of computer storage systems often vary widely depending on the particular system and/or application program that is accessing the storage system. For example, different file systems (often corresponding with different operating systems) may organize file and directory structures on volumes of the storage system in very different ways. Or, for example, different database management systems may organize data and meta-data (e.g., indexing information) differently with respect to one another and all such database systems may organize data and meta-data differently than operating system and file system programs. Still further, virtualized systems (e.g., hypervisor programs that virtualize all hardware in a computing system) may organize user data and meta-data describing volumes in different ways than the underlying systems and applications that may be running under control of the virtualization programs.
Various system programs and application programs present very different needs to storage systems thus making it difficult to achieve optimal performance and reliability for data storage systems. A very skilled system administrator may be aware of these different needs and may organize and configure each logical volume on a storage system in hopes of achieving desired performance and/or reliability goals. Such customized configuration for each of potentially many logical volumes residing on each of potentially many storage systems presents a significant challenge for even the most skilled system administrators. Further, in some cases the system administrator may not even be aware of precisely what system programs and/or application programs are accessing particular logical volumes. Rather, the system administrator may simply be requested by users to create logical volumes having some predetermined storage capacity and may never even be informed about the potential usage of the requested volumes.
Even a skilled system administrator may lack detailed knowledge of storage systems regarding the various options for the underlying logical volume organization and configuration. Further, even a skilled system administrator may lack detailed knowledge of the needs for particular system and/or application programs for storage volume organization/configuration to achieve optimal performance and/or reliability. In view of the difficulties presented to a system administrator hoping to optimize performance of a variety of logical volumes and corresponding programs, it is common that no attempt is even made to provide such customized configuration to achieve optimal performance and/or reliability.
Thus it is an ongoing challenge to improve performance and/or reliability of logical volumes in storage systems based on patterns of usage by a variety of system and application programs.